1. Field of the Invention
The present invention relates generally to the field of computer animation. More particularly, the present invention relates to a system and method for generating computer animated images of a two-dimensional array of objects advancing in a third dimension.
2. Description of the Prior Art
A common recurring problem in the field of computer animation is how to design and generate animated images of a two-dimensional array of objects advancing in a third dimension. The array of objects may be a regular or irregular array, and each of the objects of the array may be growing, gradually appearing, hurling through space, or propagating in any type of medium. As examples, the desired contents of an animation may include accelerated animated sequences depicting strands of hair growing on a human, patches of fur growing on an animal, blades of grass growing from the ground, a grove of trees growing in a forest, a hive of bees exiting a nest, icicles forming outwardly from a surface, crystals growing in a lattice, and spouts of water spraying from several sources. It is often desirable to depict the evolution of such processes in reverse such as for example in a sequence where the growth of hair is reversed. These are just a few examples of a wide variety of accelerated animated sequences depicting natural and organic types of processes which the animator must design to look natural.
As a more specific example, for various applications in the fields of medicine and medical training, it is often desirable to generate animated images depicting an accelerated growth of anatomical elements (e.g., bones, muscles, vascular tissue, organs, and other tissue) of a human or animal. Such animated images are also useful in special effects applications for motion pictures. In such applications, it may be desirable to provide a visual transformation from an invisible state to a visible state and vice-versa
The subject matter of animated images of a two-dimensional array of objects advancing in a third dimension may also include animated sequences depicting unnatural or non-organic processes such as a hale of projectiles shot from a gallery of guns, or a matrix of light beams propagating from a plurality of sources. These are just a few examples of a wide variety of animated sequences depicting artificial processes which an animator may wish to design in order to achieve some particular desired effect.
In order to generate animated images of a two-dimensional array of objects advancing in a third dimension, it is necessary for an animator to first generate a model for the objects using primitives and attributes of the objects including their associated sizes and shapes, and also specifying paths of advancement of the objects in the third dimension including start positions and end positions. Subsequently, for each of the objects, the animator must specify animation attributes including a rate of advancement of the object as well as a start time specifying when the object will begin to advance along its associated path.
Various problems arise for the animator in generating models specifying attributes of the objects. However, these model generation problems are specific to the types of objects being modeled. For example, the generation of models for muscle fibers of a muscle structure is complicated by the fact that the muscle fibers must be substantially confined to the volume of the muscle structure which may change during the course of animation.
Animators face another problem, not specific to the types of objects being modeled, in designing the animation of a two-dimensional array of objects advancing in a third dimension. The problem in designing such animation attributes is that when the animator specifies rates of advancement for each associated object, as well as associated start times for advancement of each of the objects, the animator has no means by which to predict the overall look of the advancement of the objects. Typically, the animator must repetitively design the animation by defining the rates of advancement and the start times by hand and then view the resulting animated images in order to determine whether the animation appears natural or appears to have some other desired effect. For example, in the case of an organic growth process, the animator must design the rate of advancement and the start time for each object and then view the resulting animated images in accordance with a cumbersome trial and error process in order to achieve a desired appearance of organic growth.
What is needed is a system and method for generating realistic animated images of a two-dimensional array of objects advancing in a third dimension wherein the animator is provided with a means for controlling the resulting animation in order to achieve a desired animation effect without the need to perform a cumbersome trial and error process.
It is an object of the present invention to provide a system and method for generating realistic animated images of a two-dimensional array of objects advancing in a third dimension wherein the animator is provided with a means for controlling the resulting animation in order to achieve a desired animated effect.
It is also an object of the present invention to provide a system and method for generating realistic animated images of a two-dimensional array of muscle fibers of a muscle structure as the muscle structure moves in accordance with an animated sequence.
Briefly, a presently preferred embodiment of the present invention provides a process for generating animated images of a two-dimensional array of objects advancing in a third dimension. The process includes the steps of: defining an array of objects; defining a start position, an end position, and an advancement path associated with each of the objects, each advancement path extending from the associated start position to the associated end position; defining an associated rate of advancement for each of the objects along the associated path; defining a manifold surface including a locus of points each being defined in a three dimensional coordinate system and having an associated height coordinate value, each of the objects being associated with one of the points on the manifold surface; determining an associated advancement start time for each of the objects based on an associated height coordinate value of an associated point on the manifold surface; and defining animated images of the array of objects advancing along the associated advancement paths in accordance with the associated rates of advancement and the associated advancement start times. Each of the objects has an associated identification value that is mapped to an associated point on the manifold surface, and the identification values are assigned to the associated objects in accordance with a noise function.
The step of defining an associated rate of advancement for each of the objects along the associated path further includes the steps of: defining an average duration attribute associated with the array of objects, the average duration attribute indicating an average time required for advancement of the objects from the start positions to the end positions along the advancement paths; defining an average duration variance attribute associated with the array of objects, the average duration variance attribute indicating a variance in the time required for each of the objects to advance from its start position to its end position along its associated advancement path; and defining the associated rate of advancement based on the average duration attribute and the average duration variance attribute using a noise function.
In one embodiment, the step of defining an array of objects includes defining a muscle structure including an array of fibers each being defined by at least one associated primitive describing the fiber. In this embodiment, the start position, end position, and advancement path associated with each of the fibers is defined by the associated primitive. Also in this embodiment, the step of defining animated images includes defining animated graphical images of portions of the fibers gradually appearing or disappearing along the associated primitive.
In one embodiment, the step of defining the manifold surface includes: defining a first mathematical relationship expressed as a function of a first predefined frequency value defining at least one set of local maxima points on the manifold surface; determining a second mathematical relationship expressed as a function of a second predefined frequency value that is lower than the first predefined frequency value; and clamping the first mathematical relationship based on the second mathematical relationship so that each of the local maxima points of the set has an associated height value that is substantially close to the height values of other ones of the set of local maxima points.
The step of defining a muscle structure further includes: generating a muscle surface having an array of control points configured to form an outer surface generally defining a muscle structure having an associated volume; specifying a desired fiber diameter value for each of the muscle fibers; and determining attributes of each of the primitives defining the associated muscle fibers based on the volume of the muscle structure and the desired fiber diameter value.
In one embodiment, the step of determining attributes of each of the primitives further includes: determining a maximum transverse cross-sectional area of the muscle structure, the area being bounded by a curve tracing the cross-sectional area on the outer surface; determining at least one scaled down continuous curve based on the boundary curve, the first scaled down continuous curve being concentric with the boundary curve; determining fiber center points along the scaled down continuous curve; and determining an actual fiber diameter value for each of a plurality of fibers to be defined along the scaled down continuous curve.
An important advantage of the process of the present system for generating realistic animated images of a two-dimensional array of objects advancing in a third dimension is that the manifold surface provides the animator with a means for controlling the resulting animation in order to achieve a desired animated effect without the need to perform a cumbersome trial and error process.